unit DATA_MODULE;

interface

uses
  SysUtils, Classes, WideStrings, DBXMySql, DB, SqlExpr, IBCustomDataSet,
  IBDatabase, IBTable, IBQuery, IBSQL;

type
  TDataModule1 = class(TDataModule)
    Conexao: TIBDatabase;
    Transacao: TIBTransaction;
    IB_HOTEIS: TIBTable;
    IB_HOTEISHOTCODIGO: TIntegerField;
    IB_HOTEISHOTNOME: TIBStringField;
    IB_HOTEISHOTENDERECO: TIBStringField;
    IB_HOTEISHOTLOGRADOURO: TIBStringField;
    IB_HOTEISHOTCNPJ: TIntegerField;
    IB_FORMA_PAGAMENTO: TIBTransaction;
    IB_AUDITORIOS: TIBTransaction;
    IB_AUDITORIOS_RESERVA: TIBTransaction;
    IB_CLIENTES: TIBTransaction;
    IB_FORMAPAGAMENTO: TIBTable;
    IB_AUDITORIO: TIBTable;
    IB_AUDITORIOSRESERVA: TIBTable;
    IB_CLIENTE: TIBTable;
    IB_GRUPO: TIBTable;
    IN_FUNCIONARIO: TIBTable;
    IB_ITEN: TIBTable;
    IB_ITENSAUDITORIOS: TIBTable;
    IB_OBJETO: TIBTable;
    IB_ITENSQUARTO: TIBTable;
    IB_FUNCIONARIOS: TIBTransaction;
    IB_GRUPOS: TIBTransaction;
    IB_ITENS: TIBTransaction;
    IB_INTES_AUDITORIO: TIBTransaction;
    IB_ITENS_QUARTO: TIBTransaction;
    IB_OBJETOS: TIBTransaction;
    IB_OBJETOS_GRUPO: TIBTransaction;
    IB_QUARTOS: TIBTransaction;
    IB_QUARTOS_RESERVA: TIBTransaction;
    IB_FORMAPAGAMENTOFORPAGCODIGO: TIntegerField;
    IB_FORMAPAGAMENTOFORPAGDESCRICAO: TIBStringField;
    IB_FORMAPAGAMENTOFORPAGNUMVEZES: TIntegerField;
    IB_AUDITORIOHOTCODIGO: TIntegerField;
    IB_AUDITORIOAUDCODIGO: TIntegerField;
    IB_AUDITORIOAUDDESCRICAO: TIBStringField;
    IB_AUDITORIOAUDNUMMAXPESSOAS: TIntegerField;
    IB_AUDITORIOSRESERVAHOTCODIGO: TIntegerField;
    IB_AUDITORIOSRESERVAAUDCODIGO: TIntegerField;
    IB_AUDITORIOSRESERVARESAUDCODIGO: TIntegerField;
    IB_AUDITORIOSRESERVARESAUDVALOR: TIBBCDField;
    IB_CLIENTECLICODIGO: TIntegerField;
    IB_CLIENTECLINOME: TIBStringField;
    IB_CLIENTECLIENDERECO: TIBStringField;
    IB_CLIENTECLICPF: TIBStringField;
    IB_CLIENTECLILOGRADOURO: TIBStringField;
    IB_CLIENTECLITELEFONE: TIBStringField;
    IB_CLIENTECLIRG: TIBStringField;
    IB_CLIENTECLIORGAOEXPEDIDOR: TIBStringField;
    IB_CLIENTECLIEMAIL: TIBStringField;
    IB_CLIENTECLIDESDE: TDateField;
    IN_FUNCIONARIOFUNCODIGO: TIntegerField;
    IN_FUNCIONARIOHOTCODIGO: TIntegerField;
    IN_FUNCIONARIOFUNNOME: TIBStringField;
    IN_FUNCIONARIOFUNENDERECO: TIBStringField;
    IN_FUNCIONARIOFUNSALARIO: TIBBCDField;
    IN_FUNCIONARIOFUNCPF: TIBStringField;
    IN_FUNCIONARIOFUNLOGRADOURO: TIBStringField;
    IN_FUNCIONARIOFUNFONE: TIBStringField;
    IN_FUNCIONARIOFUNRG: TIBStringField;
    IN_FUNCIONARIOFUNORGAOEXPEDIDOR: TIBStringField;
    IN_FUNCIONARIOFUNEMAIL: TIBStringField;
    IN_FUNCIONARIOFUNDESDE: TDateField;
    IN_FUNCIONARIOFUNUSUARIO: TIBStringField;
    IN_FUNCIONARIOFUNSENHA: TIBStringField;
    IN_FUNCIONARIOGRUCODIGO: TIntegerField;
    IB_GRUPOGRUCODIGO: TIntegerField;
    IB_GRUPOGRUNOME: TIBStringField;
    IB_GRUPOGRUTIPO: TIBStringField;
    IB_ITENITECODIGO: TIntegerField;
    IB_ITENTIPITECODIGO: TIntegerField;
    IB_ITENITEDESCRICAO: TIBStringField;
    IB_ITENSAUDITORIOSHOTCODIGO: TIntegerField;
    IB_ITENSAUDITORIOSITECODIGO: TIntegerField;
    IB_ITENSAUDITORIOSAUDCODIGO: TIntegerField;
    IB_ITENSAUDITORIOSITEAUDCODIGO: TIntegerField;
    IB_ITENSAUDITORIOSITEAUDNUMITENS: TIntegerField;
    IB_ITENSQUARTOHOTCODIGO: TIntegerField;
    IB_ITENSQUARTOQUACODIGO: TIntegerField;
    IB_ITENSQUARTOITECODIGO: TIntegerField;
    IB_ITENSQUARTOITEQUACODIGO: TIntegerField;
    IB_OBJETOOBJNOME: TIBStringField;
    IB_OBJETOOBJDESCRICAO: TIBStringField;
    IB_RESERVAS_AUDITORIOS: TIBTransaction;
    IB_RESERVAS_QUARTOS: TIBTransaction;
    IB_TIPOS_ITENS: TIBTransaction;
    IB_TIPOS_QUARTOS: TIBTransaction;
    IB_OBJETOSGRUPO: TIBTable;
    IB_QUARTO: TIBTable;
    IB_QUARTOSRESERVA: TIBTable;
    IB_RESERVASAUDITORIOS: TIBTable;
    IB_RESERVASQUARTOS: TIBTable;
    IB_TIPOSITENS: TIBTable;
    IB_TIPOSQUARTOS: TIBTable;
    IB_OBJETOSGRUPOOBJNOME: TIBStringField;
    IB_OBJETOSGRUPOGRUCODIGO: TIntegerField;
    IB_QUARTOHOTCODIGO: TIntegerField;
    IB_QUARTOQUACODIGO: TIntegerField;
    IB_QUARTOTIPQCODIGO: TIntegerField;
    IB_QUARTOQUADESCRICAO: TIBStringField;
    IB_QUARTOQUAVALOR: TIBBCDField;
    IB_RESERVASAUDITORIOSRESAUDCODIGO: TIntegerField;
    IB_RESERVASAUDITORIOSFUNCODIGO: TIntegerField;
    IB_RESERVASAUDITORIOSCLICODIGO: TIntegerField;
    IB_RESERVASAUDITORIOSFORPAGCODIGO: TIntegerField;
    IB_RESERVASAUDITORIOSRESAUDDATA: TDateField;
    IB_RESERVASAUDITORIOSRESAUDDTAINICIO: TDateField;
    IB_RESERVASAUDITORIOSRESAUDDTAFIM: TDateField;
    IB_RESERVASAUDITORIOSRESAUDSTATUS: TIBStringField;
    IB_QUARTOSRESERVAHOTCODIGO: TIntegerField;
    IB_QUARTOSRESERVAQUACODIGO: TIntegerField;
    IB_QUARTOSRESERVARESCODIGO: TIntegerField;
    IB_QUARTOSRESERVARESVALOR: TIBBCDField;
    IB_RESERVASQUARTOSRESCODIGO: TIntegerField;
    IB_RESERVASQUARTOSFORPAGCODIGO: TIntegerField;
    IB_RESERVASQUARTOSHOTCODIGO: TIntegerField;
    IB_RESERVASQUARTOSCLICODIGO: TIntegerField;
    IB_RESERVASQUARTOSFUNCODIGO: TIntegerField;
    IB_RESERVASQUARTOSRESDESCRICAO: TIBStringField;
    IB_RESERVASQUARTOSRESDATA: TDateField;
    IB_RESERVASQUARTOSRESDTAINICIO: TDateField;
    IB_RESERVASQUARTOSRESDTAFIM: TDateField;
    IB_RESERVASQUARTOSRESSTATUS: TIBStringField;
    IB_TIPOSITENSTIPITECODIGO: TIntegerField;
    IB_TIPOSITENSTIPITEDESCRICAO: TIBStringField;
    IB_TIPOSQUARTOSTIPQCODIGO: TIntegerField;
    IB_TIPOSQUARTOSTIPQDESCRICAO: TIBStringField;
    IN_FUNCIONARIONomeHotel: TStringField;
    IB_SQL: TIBSQL;
    IN_FUNCIONARIOGrupoNome: TStringField;
    procedure IB_HOTEISBeforePost(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure autoin(key, TABELA:string; ds: TDataSet);
  end;

var
  DataModule1: TDataModule1;

implementation

{$R *.dfm}

procedure TDataModule1.autoin(key, TABELA: string; ds: TDataSet);
begin
  IB_SQL.Close;
  IB_SQL.SQL.Add('SELECT COALESCE(MAX('+KEY+'),0)+1 AS ID FROM '+TABELA);
  IB_SQL.ExecQuery;
  DS.FieldByName(KEY).AsInteger := IB_SQL.FieldByName('ID').AsInteger;
  IB_SQL.Close;
end;

procedure TDataModule1.IB_HOTEISBeforePost(DataSet: TDataSet);
begin
autoin('HOTCODIGO','HOTEIS',DataSet);
end;

end.
